{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T03:24:40.325449Z",
     "start_time": "2020-10-19T03:24:40.034827Z"
    }
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  pytorch, 今から、頑張って！\n",
    "###  そう言ったら、なんでやねん？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T03:48:56.846377Z",
     "start_time": "2020-10-19T03:48:56.767304Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[-1.9515e+07,  4.5726e-41,  2.0319e-43,  0.0000e+00,  1.2603e+27,\n",
       "          3.0845e-41],\n",
       "        [-1.4478e+07,  4.5726e-41, -1.2543e-25,  4.5726e-41, -1.2544e-25,\n",
       "          4.5726e-41],\n",
       "        [-1.2556e-25,  4.5726e-41,  1.3593e-43,  0.0000e+00,  1.2692e+27,\n",
       "          3.0845e-41],\n",
       "        [-1.4478e+07,  4.5726e-41, -1.2562e-25,  4.5726e-41, -1.2562e-25,\n",
       "          4.5726e-41],\n",
       "        [-1.9039e+07,  4.5726e-41, -2.0336e+07,  4.5726e-41, -1.9331e+07,\n",
       "          4.5726e-41]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m= torch.empty(5,6)\n",
    "m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T04:02:07.824209Z",
     "start_time": "2020-10-19T04:02:07.810411Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[1., 1., 1.],\n",
       "        [1., 1., 1.],\n",
       "        [1., 1., 1.]], requires_grad=True)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "afadfsdf=torch.ones(3,3,requires_grad=True)\n",
    "afadfsdf\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T04:32:44.549943Z",
     "start_time": "2020-10-19T04:32:44.542717Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[0., 0., 0.],\n",
       "        [0., 0., 0.],\n",
       "        [0., 0., 0.]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l=torch.zeros_like(afadfsdf)\n",
    "l"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T04:44:25.598614Z",
     "start_time": "2020-10-19T04:44:25.594750Z"
    }
   },
   "outputs": [],
   "source": [
    "m=np.linspace(0.1,1.2,12)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T04:44:26.798239Z",
     "start_time": "2020-10-19T04:44:26.791825Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####   誠にありがとうございます！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T04:41:34.734749Z",
     "start_time": "2020-10-19T04:41:34.728390Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t=m.T\n",
    "t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T04:44:41.663696Z",
     "start_time": "2020-10-19T04:44:41.657056Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[0.1, 0.2, 0.3],\n",
       "        [0.4, 0.5, 0.6]],\n",
       "\n",
       "       [[0.7, 0.8, 0.9],\n",
       "        [1. , 1.1, 1.2]]])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rm=m.reshape(2,2,-1)\n",
    "rm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:29:16.818276Z",
     "start_time": "2020-10-19T08:29:16.808916Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[[-0.6037,  0.7200],\n",
       "         [-1.0070, -1.6820],\n",
       "         [ 1.9109, -0.4234],\n",
       "         [ 0.9989,  0.5830]],\n",
       "\n",
       "        [[-1.7618, -0.1412],\n",
       "         [ 0.7627, -1.5545],\n",
       "         [ 1.1151,  1.1177],\n",
       "         [ 0.1648, -1.4376]]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x=torch.randn(2,4,2)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:27:44.658470Z",
     "start_time": "2020-10-19T08:27:44.652910Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "16"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.numel()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:29:20.934715Z",
     "start_time": "2020-10-19T08:29:20.928344Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[-1.7618, -0.1412],\n",
       "        [ 0.7627, -1.5545],\n",
       "        [ 1.1151,  1.1177],\n",
       "        [ 0.1648, -1.4376]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x[1,:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:32:56.274966Z",
     "start_time": "2020-10-19T08:32:56.270391Z"
    }
   },
   "source": [
    "#   Calm down & Coding\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:36:44.981777Z",
     "start_time": "2020-10-19T08:36:44.936556Z"
    }
   },
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "\"sigmoid_cpu\" not implemented for 'Long'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                           Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-29-ce204546bd34>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m: \"sigmoid_cpu\" not implemented for 'Long'"
     ]
    }
   ],
   "source": [
    "torch.sigmoid(torch.tensor([0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:42:40.894546Z",
     "start_time": "2020-10-19T08:42:40.885497Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor(6)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b=torch.mul(2,3)\n",
    "b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:54:21.828561Z",
     "start_time": "2020-10-19T08:54:21.456523Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(100)\n",
    "x=np.linspace(-1,1,100).reshape(100,1)\n",
    "y=3*np.power(x,2)+2+0.2*np.random.rand(x.size).reshape(100,1)\n",
    "plt.scatter(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T08:59:40.215861Z",
     "start_time": "2020-10-19T08:59:40.175478Z"
    }
   },
   "outputs": [],
   "source": [
    "w1=np.random.rand(1,1)\n",
    "b1=np.random.rand(1,1)\n",
    "\n",
    "lr=0.001\n",
    "for i in range(800):\n",
    "    y_pred=np.power(x,2)*w1+b1\n",
    "    loss=0.5*(y_pred-y)**2\n",
    "    loss=loss.sum()\n",
    "    \n",
    "    grad_w=np.sum((y_pred-y)*np.power(x,2))\n",
    "    grad_b=np.sum((y_pred-y))\n",
    "    \n",
    "    w1-=lr*grad_w\n",
    "    b1-=lr*grad_b\n",
    "    \n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-10-19T09:01:55.946016Z",
     "start_time": "2020-10-19T09:01:55.734940Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[2.98927619]] [[2.09818307]]\n"
     ]
    }
   ],
   "source": [
    "plt.plot(x,y_pred,'r-',label='predict')\n",
    "plt.scatter(x,y,color='blue',marker='o',label='true')\n",
    "plt.xlim(-1,1)\n",
    "plt.ylim(2,6)\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(w1,b1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
